class AddStatesmanTo<%= migration_class_name %> < ActiveRecord::Migration<%= "[#{ActiveRecord::Migration.current_version}]" if Statesman::Utils.rails_5_or_higher? %>
  def change
    add_column :<%= table_name %>, :to_state, :string, null: false
    add_column :<%= table_name %>, :metadata, :text<%= ", default: #{metadata_default_value}" unless mysql? %>
    add_column :<%= table_name %>, :sort_key, :integer, null: false
    add_column :<%= table_name %>, :<%= parent_id %>, :integer, null: false
    add_column :<%= table_name %>, :most_recent, null: false
    add_column :<%= table_name %>, :created_at, :datetime, null: false
    add_column :<%= table_name %>, :updated_at, :datetime, null: false

    add_index :<%= table_name %>, %i(<%= parent_id %> sort_key), unique: true, name: "<%= index_name :parent_sort  %>"
    add_index :<%= table_name %>, %i(<%= parent_id %> most_recent), unique: true, <%= 'where: "most_recent", ' if database_supports_partial_indexes? %>name: "<%= index_name :parent_most_recent %>"
  end
end
